#include "天玑.hpp"

载入 标准输入输出 ；
载入 图形界面 ；
载入 图形绘制 ；
载入 图像操作 ；

双精度 对比度 ；/**< 控制对比度 */
整型  亮度 ； /**< 控制亮度 */

空类型 椭圆(容器 img, 双精度 角度) {
    整型 线宽 = 2;
    整型 线形 = 8;
    绘制椭圆(img, Point(600/ 2, 600 / 2),
        Size(600 / 4, 600/ 16), 角度, 0, 360, Scalar(133, 0, 200),
        线宽, 线形,0);
}

整型 主函数( 整型 参数个数, 字符型** 命令参数 )
{
    窗口("天玑", 1);
    双精度 对比度 = 0.5; 双精度 亮度; 双精度 input;
    整型 scale = 1;
    整型 delta = 0;
    整型 ddepth = CV_16S;
    容器 dst,dst1,grad,grad_x,grad_y,abs_grad_x, abs_grad_y;
    dst = 读取图片(命令参数[1]);
    显示图像( "天玑", dst);
    等待键入(0);
    GaussianBlur( dst, dst, Size(3,3), 0, 0, 4 );
    cvtColor( dst, dst1, COLOR_RGB2GRAY);
    Sobel( dst1, grad_x, ddepth, 1, 0, 3, scale, delta, 4 );
    convertScaleAbs( grad_x, abs_grad_x );
    Sobel( dst1, grad_y, ddepth, 0, 1, 3, scale, delta, 4 );
    convertScaleAbs( grad_y, abs_grad_y );
    addWeighted( abs_grad_x, 0.5, abs_grad_y, 0.5, 0, grad );
    显示图像( "天玑", dst);
    等待键入(0);
    显示图像( "天玑", dst1);
    等待键入(0);
    显示图像( "天玑", grad);
    等待键入(0);
    存储图片("图片/线图.jpg",grad);
    容器 线图;
    线图=读取图片("图片/线图.jpg");
    显示图像("天玑",线图);
    等待键入(0);
    返回 成功;
}